import { IPSAppDEAction } from '../../app/dataentity/ipsapp-deaction';
import { IPSAppDEDataSet } from '../../app/dataentity/ipsapp-dedata-set';
import { IPSAppDEField } from '../../app/dataentity/ipsapp-defield';
import { IPSAppDataEntity } from '../../app/dataentity/ipsapp-data-entity';
import { IPSAppViewUIAction } from '../../app/view/ipsapp-view-uiaction';
import { IPSControlMDObject } from '../ipscontrol-mdobject';
import { IPSControlXDataContainer } from '../ipscontrol-xdata-container';
import { PSControlItemImpl2 } from '../pscontrol-item-impl2';
import { IPSSysCalendarItem } from './ipssys-calendar-item';
import { IPSLayoutPanel } from '../panel/ipslayout-panel';
import { IPSDEContextMenu } from '../toolbar/ipsdecontext-menu';
import { IPSDEOPPriv } from '../../dataentity/priv/ipsdeoppriv';
import { IPSLanguageRes } from '../../res/ipslanguage-res';
import { IPSSysCss } from '../../res/ipssys-css';
import { IPSSysImage } from '../../res/ipssys-image';
import { IPSSysPFPlugin } from '../../res/ipssys-pfplugin';
import { IPSUIAction } from '../../view/ipsuiaction';

export class PSSysCalendarItemImpl extends PSControlItemImpl2 implements IPSSysCalendarItem, IPSControlXDataContainer, IPSControlMDObject {
  get bKColor(): string {
    return this.M.bKColor;
  }

  protected bkcolorpsappdefield: IPSAppDEField | null = null;

  getBKColorPSAppDEField(): IPSAppDEField | null {
    if (this.bkcolorpsappdefield != null) return this.bkcolorpsappdefield;
    const value = this.M.getBKColorPSAppDEField;
    if (value == null) {
      return null;
    }
    const ipsappdataentity = this.getPSAppDataEntity();
    if (ipsappdataentity != null) {
      this.bkcolorpsappdefield = ipsappdataentity.findPSAppDEField(value);
    }
    return this.bkcolorpsappdefield;
  }

  get bKColorPSAppDEField(): IPSAppDEField | null {
    return this.getBKColorPSAppDEField();
  }

  getBKColorPSAppDEFieldMust(): IPSAppDEField {
    const value = this.getBKColorPSAppDEField();
    if (value == null) {
      throw new Error('未指定背景颜色应用实体属性');
    }
    return value;
  }

  protected begintimepsappdefield: IPSAppDEField | null = null;

  getBeginTimePSAppDEField(): IPSAppDEField | null {
    if (this.begintimepsappdefield != null) return this.begintimepsappdefield;
    const value = this.M.getBeginTimePSAppDEField;
    if (value == null) {
      return null;
    }
    const ipsappdataentity = this.getPSAppDataEntity();
    if (ipsappdataentity != null) {
      this.begintimepsappdefield = ipsappdataentity.findPSAppDEField(value);
    }
    return this.begintimepsappdefield;
  }

  get beginTimePSAppDEField(): IPSAppDEField | null {
    return this.getBeginTimePSAppDEField();
  }

  getBeginTimePSAppDEFieldMust(): IPSAppDEField {
    const value = this.getBeginTimePSAppDEField();
    if (value == null) {
      throw new Error('未指定开始时间应用实体属性');
    }
    return value;
  }

  protected clspsappdefield: IPSAppDEField | null = null;

  getClsPSAppDEField(): IPSAppDEField | null {
    if (this.clspsappdefield != null) return this.clspsappdefield;
    const value = this.M.getClsPSAppDEField;
    if (value == null) {
      return null;
    }
    const ipsappdataentity = this.getPSAppDataEntity();
    if (ipsappdataentity != null) {
      this.clspsappdefield = ipsappdataentity.findPSAppDEField(value);
    }
    return this.clspsappdefield;
  }

  get clsPSAppDEField(): IPSAppDEField | null {
    return this.getClsPSAppDEField();
  }

  getClsPSAppDEFieldMust(): IPSAppDEField {
    const value = this.getClsPSAppDEField();
    if (value == null) {
      throw new Error('未指定项样式表值应用实体属性');
    }
    return value;
  }

  get color(): string {
    return this.M.color;
  }

  protected colorpsappdefield: IPSAppDEField | null = null;

  getColorPSAppDEField(): IPSAppDEField | null {
    if (this.colorpsappdefield != null) return this.colorpsappdefield;
    const value = this.M.getColorPSAppDEField;
    if (value == null) {
      return null;
    }
    const ipsappdataentity = this.getPSAppDataEntity();
    if (ipsappdataentity != null) {
      this.colorpsappdefield = ipsappdataentity.findPSAppDEField(value);
    }
    return this.colorpsappdefield;
  }

  get colorPSAppDEField(): IPSAppDEField | null {
    return this.getColorPSAppDEField();
  }

  getColorPSAppDEFieldMust(): IPSAppDEField {
    const value = this.getColorPSAppDEField();
    if (value == null) {
      throw new Error('未指定文本颜色应用实体属性');
    }
    return value;
  }

  protected contentpsappdefield: IPSAppDEField | null = null;

  getContentPSAppDEField(): IPSAppDEField | null {
    if (this.contentpsappdefield != null) return this.contentpsappdefield;
    const value = this.M.getContentPSAppDEField;
    if (value == null) {
      return null;
    }
    const ipsappdataentity = this.getPSAppDataEntity();
    if (ipsappdataentity != null) {
      this.contentpsappdefield = ipsappdataentity.findPSAppDEField(value);
    }
    return this.contentpsappdefield;
  }

  get contentPSAppDEField(): IPSAppDEField | null {
    return this.getContentPSAppDEField();
  }

  getContentPSAppDEFieldMust(): IPSAppDEField {
    const value = this.getContentPSAppDEField();
    if (value == null) {
      throw new Error('未指定内容应用实体属性');
    }
    return value;
  }

  protected createpsappdeaction: IPSAppDEAction | null = null;

  getCreatePSAppDEAction(): IPSAppDEAction | null {
    if (this.createpsappdeaction != null) return this.createpsappdeaction;
    const value = this.M.getCreatePSAppDEAction;
    if (value == null) {
      return null;
    }
    const ipsappdataentity = this.getPSAppDataEntity();
    if (ipsappdataentity != null) {
      this.createpsappdeaction = ipsappdataentity.findPSAppDEAction(value);
    }
    return this.createpsappdeaction;
  }

  get createPSAppDEAction(): IPSAppDEAction | null {
    return this.getCreatePSAppDEAction();
  }

  getCreatePSAppDEActionMust(): IPSAppDEAction {
    const value = this.getCreatePSAppDEAction();
    if (value == null) {
      throw new Error('未指定建立数据应用实体行为');
    }
    return value;
  }

  protected createpsdeoppriv: IPSDEOPPriv | null = null;

  getCreatePSDEOPPriv(): IPSDEOPPriv | null {
    if (this.createpsdeoppriv != null) return this.createpsdeoppriv;
    const value = this.M.getCreatePSDEOPPriv;
    if (value == null) {
      return null;
    }
    this.createpsdeoppriv = this.getPSModel4('dataentity.priv.IPSDEOPPriv', value, 'getCreatePSDEOPPriv') as IPSDEOPPriv;
    return this.createpsdeoppriv;
  }

  get createPSDEOPPriv(): IPSDEOPPriv | null {
    return this.getCreatePSDEOPPriv();
  }

  getCreatePSDEOPPrivMust(): IPSDEOPPriv {
    const value = this.getCreatePSDEOPPriv();
    if (value == null) {
      throw new Error('未指定建立要求操作标识');
    }
    return value;
  }

  protected defaultpsuiaction: IPSAppViewUIAction | null = null;

  getDefaultPSUIAction(): IPSAppViewUIAction | null {
    if (this.defaultpsuiaction != null) return this.defaultpsuiaction;
    const value = this.M.getDefaultPSUIAction;
    if (value == null) {
      return null;
    }
    this.defaultpsuiaction = this.getPSModel4('app.view.IPSAppViewUIAction', value, 'getDefaultPSUIAction') as IPSAppViewUIAction;
    return this.defaultpsuiaction;
  }

  get defaultPSUIAction(): IPSAppViewUIAction | null {
    return this.getDefaultPSUIAction();
  }

  getDefaultPSUIActionMust(): IPSAppViewUIAction {
    const value = this.getDefaultPSUIAction();
    if (value == null) {
      throw new Error('未指定日历项默认行为');
    }
    return value;
  }

  protected endtimepsappdefield: IPSAppDEField | null = null;

  getEndTimePSAppDEField(): IPSAppDEField | null {
    if (this.endtimepsappdefield != null) return this.endtimepsappdefield;
    const value = this.M.getEndTimePSAppDEField;
    if (value == null) {
      return null;
    }
    const ipsappdataentity = this.getPSAppDataEntity();
    if (ipsappdataentity != null) {
      this.endtimepsappdefield = ipsappdataentity.findPSAppDEField(value);
    }
    return this.endtimepsappdefield;
  }

  get endTimePSAppDEField(): IPSAppDEField | null {
    return this.getEndTimePSAppDEField();
  }

  getEndTimePSAppDEFieldMust(): IPSAppDEField {
    const value = this.getEndTimePSAppDEField();
    if (value == null) {
      throw new Error('未指定结束时间应用实体属性');
    }
    return value;
  }

  protected iconpsappdefield: IPSAppDEField | null = null;

  getIconPSAppDEField(): IPSAppDEField | null {
    if (this.iconpsappdefield != null) return this.iconpsappdefield;
    const value = this.M.getIconPSAppDEField;
    if (value == null) {
      return null;
    }
    const ipsappdataentity = this.getPSAppDataEntity();
    if (ipsappdataentity != null) {
      this.iconpsappdefield = ipsappdataentity.findPSAppDEField(value);
    }
    return this.iconpsappdefield;
  }

  get iconPSAppDEField(): IPSAppDEField | null {
    return this.getIconPSAppDEField();
  }

  getIconPSAppDEFieldMust(): IPSAppDEField {
    const value = this.getIconPSAppDEField();
    if (value == null) {
      throw new Error('未指定项图标值应用实体属性');
    }
    return value;
  }

  protected idpsappdefield: IPSAppDEField | null = null;

  getIdPSAppDEField(): IPSAppDEField | null {
    if (this.idpsappdefield != null) return this.idpsappdefield;
    const value = this.M.getIdPSAppDEField;
    if (value == null) {
      return null;
    }
    const ipsappdataentity = this.getPSAppDataEntity();
    if (ipsappdataentity != null) {
      this.idpsappdefield = ipsappdataentity.findPSAppDEField(value);
    }
    return this.idpsappdefield;
  }

  get idPSAppDEField(): IPSAppDEField | null {
    return this.getIdPSAppDEField();
  }

  getIdPSAppDEFieldMust(): IPSAppDEField {
    const value = this.getIdPSAppDEField();
    if (value == null) {
      throw new Error('未指定项标识值应用实体属性');
    }
    return value;
  }

  get itemStyle(): 'DEFAULT' | 'STYLE2' | 'STYLE3' | 'STYLE4' {
    return this.M.itemStyle;
  }

  get itemType(): string {
    return this.M.itemType;
  }

  protected levelpsappdefield: IPSAppDEField | null = null;

  getLevelPSAppDEField(): IPSAppDEField | null {
    if (this.levelpsappdefield != null) return this.levelpsappdefield;
    const value = this.M.getLevelPSAppDEField;
    if (value == null) {
      return null;
    }
    const ipsappdataentity = this.getPSAppDataEntity();
    if (ipsappdataentity != null) {
      this.levelpsappdefield = ipsappdataentity.findPSAppDEField(value);
    }
    return this.levelpsappdefield;
  }

  get levelPSAppDEField(): IPSAppDEField | null {
    return this.getLevelPSAppDEField();
  }

  getLevelPSAppDEFieldMust(): IPSAppDEField {
    const value = this.getLevelPSAppDEField();
    if (value == null) {
      throw new Error('未指定级别应用实体属性');
    }
    return value;
  }

  get maxSize(): number {
    return this.M.maxSize;
  }

  get modelObj(): string {
    return this.M.modelObj;
  }

  protected namepslanguageres: IPSLanguageRes | null = null;

  getNamePSLanguageRes(): IPSLanguageRes | null {
    if (this.namepslanguageres != null) return this.namepslanguageres;
    const value = this.M.getNamePSLanguageRes;
    if (value == null) {
      return null;
    }
    this.namepslanguageres = this.getPSModel4('res.IPSLanguageRes', value, 'getNamePSLanguageRes') as IPSLanguageRes;
    return this.namepslanguageres;
  }

  get namePSLanguageRes(): IPSLanguageRes | null {
    return this.getNamePSLanguageRes();
  }

  getNamePSLanguageResMust(): IPSLanguageRes {
    const value = this.getNamePSLanguageRes();
    if (value == null) {
      throw new Error('未指定名称语言资源');
    }
    return value;
  }

  get orderValue(): number {
    return this.M.orderValue != null ? this.M.orderValue : 99999;
  }

  protected psappdedataset: IPSAppDEDataSet | null = null;

  getPSAppDEDataSet(): IPSAppDEDataSet | null {
    if (this.psappdedataset != null) return this.psappdedataset;
    const value = this.M.getPSAppDEDataSet;
    if (value == null) {
      return null;
    }
    const ipsappdataentity = this.getPSAppDataEntity();
    if (ipsappdataentity != null) {
      this.psappdedataset = ipsappdataentity.findPSAppDEDataSet(value);
    }
    return this.psappdedataset;
  }

  get psAppDEDataSet(): IPSAppDEDataSet | null {
    return this.getPSAppDEDataSet();
  }

  getPSAppDEDataSetMust(): IPSAppDEDataSet {
    const value = this.getPSAppDEDataSet();
    if (value == null) {
      throw new Error('未指定应用实体数据集');
    }
    return value;
  }

  protected psappdataentity: IPSAppDataEntity | null = null;

  getPSAppDataEntity(): IPSAppDataEntity | null {
    if (this.psappdataentity != null) return this.psappdataentity;
    const value = this.M.getPSAppDataEntity;
    if (value == null) {
      return null;
    }
    this.psappdataentity = this.getPSModel4('app.dataentity.IPSAppDataEntity', value, 'getPSAppDataEntity') as IPSAppDataEntity;
    return this.psappdataentity;
  }

  get psAppDataEntity(): IPSAppDataEntity | null {
    return this.getPSAppDataEntity();
  }

  getPSAppDataEntityMust(): IPSAppDataEntity {
    const value = this.getPSAppDataEntity();
    if (value == null) {
      throw new Error('未指定应用实体对象');
    }
    return value;
  }

  protected psdecontextmenu: IPSDEContextMenu | null = null;

  getPSDEContextMenu(): IPSDEContextMenu | null {
    if (this.psdecontextmenu != null) return this.psdecontextmenu;
    const value = this.M.getPSDEContextMenu;
    if (value == null) {
      return null;
    }
    this.psdecontextmenu = this.getPSModel4('control.toolbar.IPSDEContextMenu', value, 'getPSDEContextMenu') as IPSDEContextMenu;
    return this.psdecontextmenu;
  }

  get psDEContextMenu(): IPSDEContextMenu | null {
    return this.getPSDEContextMenu();
  }

  getPSDEContextMenuMust(): IPSDEContextMenu {
    const value = this.getPSDEContextMenu();
    if (value == null) {
      throw new Error('未指定上下文菜单对象');
    }
    return value;
  }

  protected pslayoutpanel: IPSLayoutPanel | null = null;

  getPSLayoutPanel(): IPSLayoutPanel | null {
    if (this.pslayoutpanel != null) return this.pslayoutpanel;
    const value = this.M.getPSLayoutPanel;
    if (value == null) {
      return null;
    }
    this.pslayoutpanel = this.getPSModel4('control.panel.IPSLayoutPanel', value, 'getPSLayoutPanel') as IPSLayoutPanel;
    return this.pslayoutpanel;
  }

  get psLayoutPanel(): IPSLayoutPanel | null {
    return this.getPSLayoutPanel();
  }

  getPSLayoutPanelMust(): IPSLayoutPanel {
    const value = this.getPSLayoutPanel();
    if (value == null) {
      throw new Error('未指定项布局面板');
    }
    return value;
  }

  protected pssyscss: IPSSysCss | null = null;

  getPSSysCss(): IPSSysCss | null {
    if (this.pssyscss != null) return this.pssyscss;
    const value = this.M.getPSSysCss;
    if (value == null) {
      return null;
    }
    this.pssyscss = this.getPSModel4('res.IPSSysCss', value, 'getPSSysCss') as IPSSysCss;
    return this.pssyscss;
  }

  get psSysCss(): IPSSysCss | null {
    return this.getPSSysCss();
  }

  getPSSysCssMust(): IPSSysCss {
    const value = this.getPSSysCss();
    if (value == null) {
      throw new Error('未指定项界面样式表');
    }
    return value;
  }

  protected pssysimage: IPSSysImage | null = null;

  getPSSysImage(): IPSSysImage | null {
    if (this.pssysimage != null) return this.pssysimage;
    const value = this.M.getPSSysImage;
    if (value == null) {
      return null;
    }
    this.pssysimage = this.getPSModel4('res.IPSSysImage', value, 'getPSSysImage') as IPSSysImage;
    return this.pssysimage;
  }

  get psSysImage(): IPSSysImage | null {
    return this.getPSSysImage();
  }

  getPSSysImageMust(): IPSSysImage {
    const value = this.getPSSysImage();
    if (value == null) {
      throw new Error('未指定项图标资源对象');
    }
    return value;
  }

  protected pssyspfplugin: IPSSysPFPlugin | null = null;

  getPSSysPFPlugin(): IPSSysPFPlugin | null {
    if (this.pssyspfplugin != null) return this.pssyspfplugin;
    const value = this.M.getPSSysPFPlugin;
    if (value == null) {
      return null;
    }
    this.pssyspfplugin = this.getPSModel4('res.IPSSysPFPlugin', value, 'getPSSysPFPlugin') as IPSSysPFPlugin;
    return this.pssyspfplugin;
  }

  get psSysPFPlugin(): IPSSysPFPlugin | null {
    return this.getPSSysPFPlugin();
  }

  getPSSysPFPluginMust(): IPSSysPFPlugin {
    const value = this.getPSSysPFPlugin();
    if (value == null) {
      throw new Error('未指定前端模板插件');
    }
    return value;
  }

  protected psuiaction: IPSUIAction | null = null;

  getPSUIAction(): IPSUIAction | null {
    if (this.psuiaction != null) return this.psuiaction;
    const value = this.M.getPSUIAction;
    if (value == null) {
      return null;
    }
    this.psuiaction = this.getPSModel4('view.IPSUIAction', value, 'getPSUIAction') as IPSUIAction;
    return this.psuiaction;
  }

  get psUIAction(): IPSUIAction | null {
    return this.getPSUIAction();
  }

  getPSUIActionMust(): IPSUIAction {
    const value = this.getPSUIAction();
    if (value == null) {
      throw new Error('未指定日历项默认行为');
    }
    return value;
  }

  protected removepsappdeaction: IPSAppDEAction | null = null;

  getRemovePSAppDEAction(): IPSAppDEAction | null {
    if (this.removepsappdeaction != null) return this.removepsappdeaction;
    const value = this.M.getRemovePSAppDEAction;
    if (value == null) {
      return null;
    }
    const ipsappdataentity = this.getPSAppDataEntity();
    if (ipsappdataentity != null) {
      this.removepsappdeaction = ipsappdataentity.findPSAppDEAction(value);
    }
    return this.removepsappdeaction;
  }

  get removePSAppDEAction(): IPSAppDEAction | null {
    return this.getRemovePSAppDEAction();
  }

  getRemovePSAppDEActionMust(): IPSAppDEAction {
    const value = this.getRemovePSAppDEAction();
    if (value == null) {
      throw new Error('未指定删除数据应用实体行为');
    }
    return value;
  }

  protected removepsdeoppriv: IPSDEOPPriv | null = null;

  getRemovePSDEOPPriv(): IPSDEOPPriv | null {
    if (this.removepsdeoppriv != null) return this.removepsdeoppriv;
    const value = this.M.getRemovePSDEOPPriv;
    if (value == null) {
      return null;
    }
    this.removepsdeoppriv = this.getPSModel4('dataentity.priv.IPSDEOPPriv', value, 'getRemovePSDEOPPriv') as IPSDEOPPriv;
    return this.removepsdeoppriv;
  }

  get removePSDEOPPriv(): IPSDEOPPriv | null {
    return this.getRemovePSDEOPPriv();
  }

  getRemovePSDEOPPrivMust(): IPSDEOPPriv {
    const value = this.getRemovePSDEOPPriv();
    if (value == null) {
      throw new Error('未指定删除要求操作标识');
    }
    return value;
  }

  protected tag2psappdefield: IPSAppDEField | null = null;

  getTag2PSAppDEField(): IPSAppDEField | null {
    if (this.tag2psappdefield != null) return this.tag2psappdefield;
    const value = this.M.getTag2PSAppDEField;
    if (value == null) {
      return null;
    }
    const ipsappdataentity = this.getPSAppDataEntity();
    if (ipsappdataentity != null) {
      this.tag2psappdefield = ipsappdataentity.findPSAppDEField(value);
    }
    return this.tag2psappdefield;
  }

  get tag2PSAppDEField(): IPSAppDEField | null {
    return this.getTag2PSAppDEField();
  }

  getTag2PSAppDEFieldMust(): IPSAppDEField {
    const value = this.getTag2PSAppDEField();
    if (value == null) {
      throw new Error('未指定标记值2应用实体属性');
    }
    return value;
  }

  protected tagpsappdefield: IPSAppDEField | null = null;

  getTagPSAppDEField(): IPSAppDEField | null {
    if (this.tagpsappdefield != null) return this.tagpsappdefield;
    const value = this.M.getTagPSAppDEField;
    if (value == null) {
      return null;
    }
    const ipsappdataentity = this.getPSAppDataEntity();
    if (ipsappdataentity != null) {
      this.tagpsappdefield = ipsappdataentity.findPSAppDEField(value);
    }
    return this.tagpsappdefield;
  }

  get tagPSAppDEField(): IPSAppDEField | null {
    return this.getTagPSAppDEField();
  }

  getTagPSAppDEFieldMust(): IPSAppDEField {
    const value = this.getTagPSAppDEField();
    if (value == null) {
      throw new Error('未指定标记值应用实体属性');
    }
    return value;
  }

  protected textpsappdefield: IPSAppDEField | null = null;

  getTextPSAppDEField(): IPSAppDEField | null {
    if (this.textpsappdefield != null) return this.textpsappdefield;
    const value = this.M.getTextPSAppDEField;
    if (value == null) {
      return null;
    }
    const ipsappdataentity = this.getPSAppDataEntity();
    if (ipsappdataentity != null) {
      this.textpsappdefield = ipsappdataentity.findPSAppDEField(value);
    }
    return this.textpsappdefield;
  }

  get textPSAppDEField(): IPSAppDEField | null {
    return this.getTextPSAppDEField();
  }

  getTextPSAppDEFieldMust(): IPSAppDEField {
    const value = this.getTextPSAppDEField();
    if (value == null) {
      throw new Error('未指定项文本值应用实体属性');
    }
    return value;
  }

  protected tipspsappdefield: IPSAppDEField | null = null;

  getTipsPSAppDEField(): IPSAppDEField | null {
    if (this.tipspsappdefield != null) return this.tipspsappdefield;
    const value = this.M.getTipsPSAppDEField;
    if (value == null) {
      return null;
    }
    const ipsappdataentity = this.getPSAppDataEntity();
    if (ipsappdataentity != null) {
      this.tipspsappdefield = ipsappdataentity.findPSAppDEField(value);
    }
    return this.tipspsappdefield;
  }

  get tipsPSAppDEField(): IPSAppDEField | null {
    return this.getTipsPSAppDEField();
  }

  getTipsPSAppDEFieldMust(): IPSAppDEField {
    const value = this.getTipsPSAppDEField();
    if (value == null) {
      throw new Error('未指定提示应用实体属性');
    }
    return value;
  }

  protected updatepsappdeaction: IPSAppDEAction | null = null;

  getUpdatePSAppDEAction(): IPSAppDEAction | null {
    if (this.updatepsappdeaction != null) return this.updatepsappdeaction;
    const value = this.M.getUpdatePSAppDEAction;
    if (value == null) {
      return null;
    }
    const ipsappdataentity = this.getPSAppDataEntity();
    if (ipsappdataentity != null) {
      this.updatepsappdeaction = ipsappdataentity.findPSAppDEAction(value);
    }
    return this.updatepsappdeaction;
  }

  get updatePSAppDEAction(): IPSAppDEAction | null {
    return this.getUpdatePSAppDEAction();
  }

  getUpdatePSAppDEActionMust(): IPSAppDEAction {
    const value = this.getUpdatePSAppDEAction();
    if (value == null) {
      throw new Error('未指定更新数据应用实体行为');
    }
    return value;
  }

  protected updatepsdeoppriv: IPSDEOPPriv | null = null;

  getUpdatePSDEOPPriv(): IPSDEOPPriv | null {
    if (this.updatepsdeoppriv != null) return this.updatepsdeoppriv;
    const value = this.M.getUpdatePSDEOPPriv;
    if (value == null) {
      return null;
    }
    this.updatepsdeoppriv = this.getPSModel4('dataentity.priv.IPSDEOPPriv', value, 'getUpdatePSDEOPPriv') as IPSDEOPPriv;
    return this.updatepsdeoppriv;
  }

  get updatePSDEOPPriv(): IPSDEOPPriv | null {
    return this.getUpdatePSDEOPPriv();
  }

  getUpdatePSDEOPPrivMust(): IPSDEOPPriv {
    const value = this.getUpdatePSDEOPPriv();
    if (value == null) {
      throw new Error('未指定更新要求操作标识');
    }
    return value;
  }

  get enableEdit(): boolean {
    return this.M.enableEdit != null ? this.M.enableEdit : false;
  }

  get enableEditData(): boolean {
    return this.M.enableEditData;
  }

  get enableExport(): boolean {
    return this.M.enableExport != null ? this.M.enableExport : false;
  }

  get enableFilter(): boolean {
    return this.M.enableFilter;
  }

  get enableImport(): boolean {
    return this.M.enableImport != null ? this.M.enableImport : false;
  }

  get enableNewData(): boolean {
    return this.M.enableNewData;
  }

  get enableQuickCreate(): boolean {
    return this.M.enableQuickCreate;
  }

  get enableQuickSearch(): boolean {
    return this.M.enableQuickSearch != null ? this.M.enableQuickSearch : false;
  }

  get enableRemoveData(): boolean {
    return this.M.enableRemoveData;
  }

  get enableSearch(): boolean {
    return this.M.enableSearch != null ? this.M.enableSearch : false;
  }

  get enableViewData(): boolean {
    return this.M.enableViewData;
  }

  get loadDefault(): boolean {
    return this.M.loadDefault != null ? this.M.loadDefault : true;
  }

  get pickupMode(): boolean {
    return this.M.pickupMode != null ? this.M.pickupMode : false;
  }

  get readOnly(): boolean {
    return this.M.readOnly != null ? this.M.readOnly : false;
  }

  get cls(): string {
    return 'PSSysCalendarItemImpl';
  }

  instanceof(cls: string): boolean {
    if (
      cls == 'IPSModelObject' ||
      cls == 'IPSModelSortable' ||
      cls == 'IPSObject' ||
      cls == 'control.IPSControlMDObject' ||
      cls == 'control.IPSControlMDataContainer' ||
      cls == 'control.IPSControlXDataContainer' ||
      cls == 'control.calendar.IPSCalendarItem' ||
      cls == 'control.calendar.IPSDECalendarItem' ||
      cls == 'control.calendar.IPSSysCalendarItem'
    )
      return true;
    return super.instanceof(cls);
  }
}
